
 
 Ext.define('CheckCode',{  
    extend: 'Ext.form.field.Text',   
    alias: 'widget.checkcode',  
    inputTyle:'codefield',  
    codeUrl:Ext.BLANK_IMAGE_URL,  
    isLoader:true,  
    onRender:function(ct,position){  
        this.callParent(arguments);  
        this.codeEl = ct.createChild({ tag: 'img',
        style : 'width:75px; height:22px; vertical-align:top; cursor:pointer; margin-left:5px;',src: Ext.BLANK_IMAGE_URL});  
        this.codeEl.addCls('x-form-code');  
        this.codeEl.on('click', this.loadCodeImg, this);  
          
        if (this.isLoader) this.loadCodeImg();  
    },  
    alignErrorIcon: function() {  
        this.errorIcon.alignTo(this.codeEl, 'tl-tr', [2, 0]);  
    },  
    //如果浏览器发现url不变，就认为图片没有改变，就会使用缓存中的图片，而不是重新向服务器请求，所以需要加一个参数，改变url  
    loadCodeImg: function() {  
        this.codeEl.set({ src: this.codeUrl + '?id=' + Math.random() });  
    }  
});  
  //使用createChild方法，创建了一个图片，并为其添加了一个名为x-form-code，  
    //而后，给其创建了一个click事件，这个事件实现的功能是，当我们点击验证码图片时，换另外一张图片，  
    //最后，如果isLoader为True时，调用loadCodeImg方法  
 var uname = new Ext.form.TextField( {  
        id :'uname',  
        fieldLabel : '用户名',  
        name : 'name',//元素名称  
        //anchor:'95%',//也可用此定义自适应宽度  
        allowBlank : false,//不允许为空  
        //value : "admin",  
        blankText : '用户名不能为空'//错误提示内容  
    });  
    var checkcode = Ext.create('CheckCode',{  
                    cls : 'key',  
                    fieldLabel : '验证码',  
                    name : 'CheckCode',  
                    id : 'CheckCode',  
                    allowBlank : false,  
                    isLoader:true,  
                    blankText : '验证码不能为空',  
                    codeUrl: 'verification/getCode.do',  
                    tabIndex : 3,
	                width : 150
	               // listeners:{
	                // blur: function(){
            //失去焦点事件
        	  //var strCode = namese;//这里用的freemarke取到后台保存在session中的验证码字符。
               // var inpCode = Ext.getCmp("CheckCode").getValue();
               // alert(inpCode);
                // alert(strCode);
               // if(strCode==""||strCode == null){
                  //  chageCode();
                    //用后台的字符与页面输入的验证码进行比较
               // }else if(inpCode == strCode){
                //    return true;
               // }else{
               //     Ext.Msg.alert('错误提示', '验证码错误！');
               // }
         //}
        	
          
        //focus: function(){
            //获取焦点
       // }	
	               // }
                }); 
                
       

    var pwd = new Ext.form.TextField( {  
        id : 'pwd',  
        //xtype: 'textfield',  
        inputType : 'password',  
        fieldLabel : '密　码',  
        //anchor:'95%',  
        maxLength : 10,  
        name : 'password',  
        allowBlank : false,  
        //value : "12345",  
        blankText : '密码不能为空'  
    });  
     
      
    Ext.onReady(function() {  
    	//定义验证码控件  

   // #CheckCode{ float:left;},
   // .x-form-code{width:73px;height:20px;vertical-align:middle;cursor:pointer; float:left; margin-left:7px;}

  
        //使用表单提示  
            Ext.QuickTips.init();  
            Ext.form.Field.prototype.msgTarget = 'side';  
  
            //定义表单  
            var simple = new Ext.FormPanel( {  
        labelWidth : 75,  
        defaults : {  
            width : 150  
        },  
        defaultType : 'textfield',//默认字段类型  
        bodyStyle : 'background: #cdcdcd;padding:30 0 0 20;',  
        border : false,  
        buttonAlign : 'center',  
        border : false,  
        id : "form",  
        //定义表单元素  
        items : [ uname, pwd ,checkcode],  
        buttons : [ {  
            text : '登录',  
            type : 'submit',  
            id : 'sb',  
            //定义表单提交事件  
            handler : save  
        }, {  
            text : '重置',  
            handler : function() {  
                simple.form.reset();  
            }  
        } ],  
        keys : [ {  
            key : Ext.EventObject.ENTER,  
            fn : save,  
            scope : this  
        } ]  
    });  
            function save() {  
                var userName = uname.getValue();  
                var userPass = pwd.getValue();  
                //验证合法后使用加载进度条  
                if (simple.form.isValid()) {  
                    //提交到服务器操作  
                    simple.form.submit({  
                        waitMsg : '正在进行登陆验证,请稍后...',  
                        url : 'user/userlogin.do',  
                        method : 'post',  
                        params : {  
                        username : userName,  
                        password : userPass  
                        },  
                        //提交成功的回调函数  
                        success : function(form, action) {  
                            
                            	//Ext.Msg.alert("添加成功！");
                            	window.location.href="index.jsp";  
                               // window.location.href="users!index.action?username="+username;  
                              
                        },  
                        //提交失败的回调函数  
                        failure : 
                        
                        
                        function(form, action) {
                        	
                            switch (action.failureType) {    
                            case Ext.form.Action.CLIENT_INVALID:    
                                Ext.Msg.alert('错误提示', '表单数据非法请核实后重新输入！');    
                                break;    
                            case Ext.form.Action.CONNECT_FAILURE:    
                                Ext.Msg.alert('错误提示', '网络连接异常！');    
                                break;    
                            case Ext.form.Action.SERVER_INVALID:    
                               Ext.Msg.alert('错误提示', action.result.message); 
                                 //simple.form.reset();   
                               
                                  
                            }  
                        }  
                    });  
                }  
            };  
            //定义窗体  
            var win = new Ext.Window({  
                id : 'win',  
                layout : 'fit', //自适应布局     
                align : 'center',  
                width : 330,  
                height : 182,  
                resizable : false,  
                draggable : false,  
                border : false,  
                bodyStyle : 'padding:5px;background:gray',  
                maximizable : false,//禁止最大化  
                closeAction : 'close',  
                closable : false,//禁止关闭,  
                items : simple  
            //将表单作为窗体元素嵌套布局  
            });  
            win.show();//显示窗体  
            pwd.focus(false, 100);  
        }); 